public class Solution {
    public int reverseBits(int n) {
        int result = 0;
        for (int i = 0; i < 32; i++) {
            result = (result << 1) | (n & 1); // 将 result 左移并添加 n 当前最低位
            n >>= 1; // 将 n 右移一位
        }
        return result;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();


        int n1 = 43261596;
        System.out.println(solution.reverseBits(n1));  // 输出: 964176192

        // 示例 2: 输入 n = 11111111111111111111111111111101
        int n2 = -3;  // 注意这里是有符号的 -3，它的二进制表示是 11111111111111111111111111111101
        System.out.println(solution.reverseBits(n2));  // 输出: 3221225471
    }
}
